package com.sg.model.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sg.framework.common.annotations.LikeFlag;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 *
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@TableName("oms_tspe_cycle_stage_data")  //3-3-11周期阶段资料表
public class OmsTspeCycleStageData implements Serializable {

  @Serial
    private static final long serialVersionUID = 1L;

  /**
   * 周期阶段资料记录ID
   */
  @TableId(value = "cycle_stage_data_id", type = IdType.ASSIGN_UUID)
  @NotNull(message = "cycleStageDataId不能为空")
  private String cycleStageDataId;

  /**
   * 周期阶段资料类型编码 CYC_STA_DAT:周期阶段资料 PER_CYC_STA_SUM_DAT:个人周期阶段总结资料
   */
  @TableField(value = "cycle_data_type_code")
  @NotNull(message = "周期阶段资料类型编码不能为空")
  @Schema(description = "周期阶段资料类型编码")
  private String cycleDataTypeCode;

  /**
   * 内容性质类型编码 STA_WOR_SUM_CON:阶段工作总结内容 SUM_OF_PRO:问题总结 SOLVING_IDEAS:解决思路 RE_FOR_IMP:改进建议 WORK_TASK_SUM_CON:工作任务总结内容
   */
  @TableField(value = "stage_content_type")
  @Schema(description = "内容性质类型编码")
  private String stageContentType;

  /**
   * 阶段资料具体内容
   */
  @TableField(value = "stage_data")
  @Schema(description = "阶段资料具体内容")
  private String stageData;

  /**
   * 资料图片概要地址
   */
  @TableField(value = "summary_data_pic")
  @Schema(description = "资料图片概要地址")
  private String summaryDataPic;

  /**
   * 资料文字概要
   */
  @TableField(value = "text_summary_data")
  @Schema(description = "资料文字概要")
  private String textSummaryData;

  /**
   * 是否人工输入内容 TRUE:是 FALSE:否
   */
  @TableField(value = "is_input_data")
  @NotNull(message = "是否人工输入内容不能为空")
  @Schema(description = "是否人工输入内容")
  private String isInputData;

  /**
   * 周期ID
   */
  @TableField(value = "cycle_id")
  @NotNull(message = "周期ID不能为空")
  @Schema(description = "周期ID")
  private String cycleId;

  /**
   * 任务ID
   */
  @TableField(value = "task_id")
  @Schema(description = "任务ID")
  private String taskId;

  /**
   * 财务费用支出备注
   */
  @TableField(value = "finace_expired_remarks")
  @Schema(description = "财务费用支出备注")
  private String finaceExpiredRemarks;

  /**
   * 周期名称
   */
  @TableField(value = "cycle_standard_name")
  @NotNull(message = "周期名称不能为空")
  @Schema(description = "周期名称")
  private String cycleStandardName;

  /**
   * 任务实际开始时间
   */
  @TableField(value = "actual_start_time")
  @Schema(description = "任务实际开始时间")
  private Date actualStartTime;

  /**
   * 周期开始时间
   */
  @TableField(value = "cycle_start_time")
  @Schema(description = "周期开始时间")
  private Date cycleStartTime;

  /**
   * 任务实际结束时间
   */
  @TableField(value = "actual_end_time")
  @Schema(description = "任务实际结束时间")
  private Date actualEndTime;

  /**
   * 周期结束时间
   */
  @TableField(value = "cycle_end_time")
  @Schema(description = "周期结束时间")
  private Date cycleEndTime;

  /**
   * 周期资料用途类型编码 OBS_TAR_REP:观测目标汇报 FILLOUT_INDEX:指标填报 PER_SUM_REP:个人总结汇报 WORK_TASK_REPORT:工作任务汇报
   */
  @TableField(value = "cycle_purpose_type_code")
  @NotNull(message = "周期资料用途类型编码不能为空")
  @Schema(description = "周期资料用途类型编码")
  private String cyclePurposeTypeCode;

  /**
   * 是否过程周期阶段 TRUE:是 FALSE:否
   */
  @TableField(value = "is_process_cycle_stage")
  @Schema(description = "是否过程周期阶段")
  private String isProcessCycleStage;

  /**
   * 周期类型标识
   */
  @TableField(value = "cycle_type_code")
  @NotNull(message = "周期类型标识不能为空")
  @Schema(description = "周期类型标识")
  private String cycleTypeCode;

  /**
   * 周期资料归属对象类型编码 EVA_OBJ_TARGET_CYCLE:被评对象目标周期 REPORT_CYCLE_STAGE_PERSONAL:个人汇报周期阶段 PROJECT:项目 TASK:任务 PROBLEM:问题
   */
  @TableField(value = "cycle_data_obj_type_code")
  @NotNull(message = "周期资料归属对象类型编码不能为空")
  @Schema(description = "周期资料归属对象类型编码")
  private String cycleDataObjTypeCode;

  /**
   * 工作周期更新切片
   */
  @TableField(value = "work_cycle_update_slice")
  @Schema(description = "工作周期更新切片")
  private String workCycleUpdateSlice;

  /**
   * 周期资料归属对象ID
   */
  @TableField(value = "cycle_data_obj_id")
  @NotNull(message = "周期资料归属对象ID不能为空")
  @Schema(description = "周期资料归属对象ID")
  private String cycleDataObjId;

  /**
   * 父子中过程周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
   */
  @TableField(value = "parent_sub_mid_cycle_type")
  @Schema(description = "父子中过程周期类型")
  private String parentSubMidCycleType;

  /**
   * 归属内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标 INDUCTION_ID:就职记录 WORK_TASK:工作任务
   */
  @TableField(value = "belong_to_content_type_code")
  @NotNull(message = "归属内容类型编码不能为空")
  @Schema(description = "归属内容类型编码")
  private String belongToContentTypeCode;

  /**
   * 归属内容ID
   */
  @TableField(value = "belong_to_content_id")
  @NotNull(message = "归属内容ID不能为空")
  @Schema(description = "归属内容ID")
  private String belongToContentId;

  /**
   * 被评对象目标周期标识
   */
  @TableField(value = "eva_obj_target_cycle_code")
  @Schema(description = "被评对象目标周期标识")
  @LikeFlag(likeType = "RIGHT_LIKE")
  private String evaObjTargetCycleCode;

  /**
   * 是否计划验收周期 TRUE:是 FALSE:否
   */
  @TableField(value = "is_plan_reception_cycle")
  @Schema(description = "是否计划验收周期")
  private String isPlanReceptionCycle;

  /**
   * 主题内容类型编码 ORG_OR_DEPT:组织或部门 INTELLIGENT_HARDWARE_EQUIPMENT:智能硬件设备 OMS_ACHIEVEMENT:成果表 OMS_ACHIEVEMENT_TYPE:成果类型表 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表 OMS_MESSAGE_CHANNEL:通道表 OMS_ORG_ORGANIZATION:组织表 OMS_PROJECT:项目表 OMS_ORG_DEPT:部门表 OMS_QUESTION:问题表 OMS_OFFICIAL_DOCUMENT:公文表 OMS_VIRTUAL_ORG:虚拟组织表 OMS_MESSAGE:消息表 OMS_MESSAGE_LOCATION:消息位置表 OMS_MESSAGE_MEMBER:成员接收消息表 OMS_MESSAGE_MEMBER_CHANNEL_RELATION:成员通道关系表 OMS_FRAMEWORK_SPACE_MEMBER:成员表
   */
  @TableField(value = "theme_content_type_code")
  @Schema(description = "主题内容类型编码")
  private String themeContentTypeCode;

  /**
   * 上级被评对象目标周期标识
   */
  @TableField(value = "parent_eva_obj_target_cycle_id")
  @Schema(description = "上级被评对象目标周期标识")
  private String parentEvaObjTargetCycleId;

  /**
   * 是否实际验收周期 TRUE:是 FALSE:否
   */
  @TableField(value = "is_actual_reception_cycle")
  @Schema(description = "是否实际验收周期")
  private String isActualReceptionCycle;

  /**
   * 主题内容ID
   */
  @TableField(value = "theme_content_id")
  @Schema(description = "主题内容ID")
  private String themeContentId;

  /**
   * 冗余定时任务发起对象ID
   */
  @TableField(value = "crontab_originator_id")
  @Schema(description = "冗余定时任务发起对象ID")
  private String crontabOriginatorId;

  /**
   * 定时任务发起对象类型编码 PLATFORM_WORK_TASK_AND_PROBLEM_OVERDUE_ETC:平台调度更新工作任务及问题逾期等数据（选用） DISPATCH_ADD_REPORT_TASK:调度生成汇报任务（选用） CYCLE_PLAN_PLT_REPORT_DATA:平台调度生成所有汇报任务（选用） DISPATCH_ADD_TEMP_TASK:调度生成模板任务（选用） FOUR_TREE_DEVIATION_DAYS_ETC:调度更新四棵树偏差天数等数据（选用） PLATFORM_FOUR_TREE_DEVIATION_DAYS_ETC:平台调度更新目标四棵树偏差天数等数据（选用） STAGE_CURRENT_CYCLE_ETC:调度更新执行周期阶段当前周期等（选用） PLATFORM_STAGE_CURRENT_CYCLE_ETC:平台调度更新执行周期阶段当前周期等（选用） TASK_OVERDUE_ETC:调度更新任务逾期等数据（选用） PLATFORM_TASK_OVERDUE_ETC:平台调度更新任务逾期等数据（选用） DISATCH_TARGET_ANCESTOR_TASK:11111调度生成设定祖先目标父子状态调度任务（选用） PLT_DISATCH_TARGET_ANCESTOR_TASK:111111平台调度补偿设定祖先目标父子状态调度任务（选用） DISPATCH_DEP_OBJ_TREE_LEAF_TASK:11111调度生成部门目标任务书树当前叶子任务（选用） PLT_DISPATCH_DEP_OBJ_TREE_LEAF_TASK:11111平台调度补偿生成部门目标任务书树当前叶子任务（选用） TIMING_TASK_OKR_TREE_DATA:调度处理OKR个人树数据（选用） PLATFORM_TIMING_OKR_TREE_DATA_TASK:平台调度补偿OKR个人树数据任务（选用） COUNT_TARGET_REPORT_DATA_TASK:调度计算目标汇报数据任务（选用） PLT_RESCUE_COUNT_TARGET_SCORE_TASK:平台调度补偿计算目标汇报数据任务（选用） DISPATCH_DELETE_TARGET_COM:调度删除指标基本信息任务（选用） DISPATCH_RESCUE_DELETE_TARGET_COM:平台调度补偿删除指标基本信息任务（选用） DISPATCH_DELETE_TARGET_CAT_COM:调度删除目标分类基本信息任务（选用） DISPATCH_RESCUE_DELETE_TARGET_CAT_COM:平台调度补偿删除目标分类基本信息任务（选用） DISATCH_DEL_TEMP_CLONE_RESULT_ETC_TASK:调度删除模板克隆答案等任务（选用） PLT_DISATCH_DEL_TEMP_CLONE_RESULT_ETC_TASK:平台调度补偿删除模板克隆答案等任务（选用） ADD_EVER_YOUNG_GUARD_MQ_DISPATCH_QUEUE_TASK:调度生成空间长生守护MQ调度队列任务 TIMING_TASK_AUTO_UPDATE_WEIGHT_SCORE:调度自动更新权重分 BUILD_THREE_TREE_CURRENT_LEAF_AND_SUPERIOR_TIMING_TASK:构建三棵树当前叶子及上级目标调度任务 DISPATCH_MANY_LOOP_UPDATE_CHECK_ITEM_NODE_STATUS:11111调度多循环更新检查项祖先状态 DISPATCH_ADD_REPORT_TASK_AUTO_EXEC:调度生成汇报任务自动汇报（选用） PLATFORM_DISPATCH_ADD_REPORT_TASK_AUTO_EXEC:平台调度生成汇报任务自动汇报（选用） DISPATCH_TORR_CONT_UPDATE_PARENT_STATE_PLAN:调度托底更新目标内容父子状态等 PLA_DISPATCH_TORR_CONT_UPDATE_PARENT_STATE_PLAN:平台调度托底更新目标内容父子状态等 DISPATCH_COMPENSATION_TARGET_CONT_CHECK_ITEM_ETC:调度补偿目标内容检查项等 PLA_DISPATCH_COMPENSATION_TARGET_CONT_CHECK_ETC:平台调度补偿目标内容检查项等 DISPATCH_DOWNWARD_UPDATE_TARGET_SET_CHECK_ITEM_ETC_STATE:调度向下更新目标设置检查项状态等 DISPATCH_REVISE_RECALCULATE_DATA_TASK:调度修订重新计算标准数据任务 DISPATCH_EXECUTE_GRID_CALC_TASK:调度执行网格计算标准数据任务 PLT_DISPATCH_EXECUTE_GRID_CALC_TASK:平台调度执行网格计算标准数据任务（选用）
   */
  @TableField(value = "crontab_originator_type_code")
  @Schema(description = "定时任务发起对象类型编码")
  private String crontabOriginatorTypeCode;

  /**
   * 内容责任人就职记录ID
   */
  @TableField(value = "filled_by_induction_id")
  @NotNull(message = "内容责任人就职记录ID不能为空")
  @Schema(description = "内容责任人就职记录ID")
  private String filledByInductionId;

  /**
   * 角色标识
   */
  @TableField(value = "evaluation_fill_role_id")
  @NotNull(message = "角色标识不能为空")
  @Schema(description = "角色标识")
  private String evaluationFillRoleId;

  /**
   * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
   */
  @TableField(value = "subject_life_cycle")
  @NotNull(message = "主体生命周期不能为空")
  @Schema(description = "主体生命周期")
  private String subjectLifeCycle;

  /**
   * 是否存档 TRUE:是 FALSE:否
   */
  @TableField(value = "is_archive")
  @NotNull(message = "是否存档不能为空")
  @Schema(description = "是否存档")
  private String isArchive;

  /**
   * 是否完成评价工作 TRUE:是 FALSE:否
   */
  @TableField(value = "is_done_evaluate")
  @Schema(description = "是否完成评价工作")
  private String isDoneEvaluate;

  /**
   * 操作人就职记录ID
   */
  @TableField(value = "operation_induction_id")
  @NotNull(message = "操作人就职记录ID不能为空")
  @Schema(description = "操作人就职记录ID")
  private String operationInductionId;

  /**
   * 是否完成填报工作 TRUE:是 FALSE:否
   */
  @TableField(value = "is_done_filleout")
  @Schema(description = "是否完成填报工作")
  private String isDoneFilleout;

  /**
   * 创建人就职记录ID
   */
  @TableField(value = "create_induction_id")
  @NotNull(message = "创建人就职记录ID不能为空")
  @Schema(description = "创建人就职记录ID")
  private String createInductionId;

  /**
   * 问题数据类型 QUASI_PROBLEM_DATA:准问题数据 PROBLEM_DATA:问题数据 NORMAL_DATA:正常数据
   */
  @TableField(value = "question_data_type_code")
  @NotNull(message = "问题数据类型不能为空")
  @Schema(description = "问题数据类型")
  private String questionDataTypeCode;

  /**
   * 发布人就职记录ID
   */
  @TableField(value = "release_induction_id")
  @Schema(description = "发布人就职记录ID")
  private String releaseInductionId;

  /**
   * 问题发起人身份人员ID
   */
  @TableField(value = "problem_data_original_role_member_id")
  @Schema(description = "问题发起人身份人员ID")
  private String problemDataOriginalRoleMemberId;

  /**
   * 存档人就职记录ID
   */
  @TableField(value = "archive_induction_id")
  @Schema(description = "存档人就职记录ID")
  private String archiveInductionId;

  /**
   * 是否历史问题数据 TRUE:是 FALSE:否
   */
  @TableField(value = "is_history_problem_data")
  @Schema(description = "是否历史问题数据")
  private String isHistoryProblemData;

  /**
   * 操作时间
   */
  @TableField(value = "operate_time")
  @NotNull(message = "操作时间不能为空")
  @Schema(description = "操作时间")
  private Date operateTime;

  /**
   * 创建时间
   */
  @TableField(value = "create_time")
  @NotNull(message = "创建时间不能为空")
  @Schema(description = "创建时间")
  private Date createTime;

  /**
   * 存档时间
   */
  @TableField(value = "archive_time")
  @Schema(description = "存档时间")
  private Date archiveTime;

  /**
   * 发布时间
   */
  @TableField(value = "release_time")
  @Schema(description = "发布时间")
  private Date releaseTime;

  /**
   * 是否作废 TRUE:是 FALSE:否
   */
  @TableField(value = "is_valid")
  @NotNull(message = "是否作废不能为空")
  @Schema(description = "是否作废")
  private String isValid;

  /**
   * 创建于空间ID
   */
  @TableField(value = "space_id")
  @NotNull(message = "创建于空间ID不能为空")
  @Schema(description = "创建于空间ID")
  private String spaceId;

  /**
   * 创建于联盟应用ID
   */
  @TableField(value = "app_id")
  @NotNull(message = "创建于联盟应用ID不能为空")
  @Schema(description = "创建于联盟应用ID")
  private String appId;
}
